package com.ebupt.migu.music.autoTri.Service;

import com.ebupt.migu.music.common.entity.ResultObject;

import java.util.Map;

/**
 * 自动运营
 * @author apple
 */
public interface AutoOperateService {

    /**
     * 创建运营计划
     *
     * @param map
     * @return
     */
    public ResultObject createOperPlan(Map<String, Object> map);

    /**
     * 更新运营计划
     *
     * @param map
     * @return
     */
    public ResultObject updateOperPlan(Map<String, Object> map);

    /**
     * 查询运营计划列表
     *
     * @return
     */
    public ResultObject queryOperPlan();

    /**
     * 创建自动触发策略
     *
     * @param map
     * @return
     */
    public ResultObject createAutoOperate(Map<String, Object> map);

    /**
     * 查询策略列表
     *
     * @param map
     * @return
     */
    public ResultObject queryAutoTris(Map<String, Object> map);

    /**
     * 查询指定策略详情
     *
     * @param map
     * @return
     */
    public ResultObject queryAutoTriDetail(Map<String, Object> map);

    /**
     * 修改自动运营策略
     *
     * @param map
     * @return
     */
    public ResultObject updateAutoTri(Map<String, Object> map);

    /**
     * 暂停策略
     *
     * @param map
     * @return
     */
    public ResultObject pause(Map<String, Object> map);

    /**
     * 策略审批
     *
     * @param map
     * @return
     */
    public ResultObject doApprove(Map<String, Object> map);

    /**
     * 查询审批列表
     *
     * @param map
     * @return
     */
    public ResultObject queryApproveRecords(Map<String, Object> map);

    /**
     * 查询单条策略审批记录
     *
     * @param map
     * @return
     */
    public ResultObject queryApproveRecordByTacID(Map<String, Object> map);

    /**
     * 实时测试
     *
     * @param map
     * @return
     */
    public ResultObject manual(Map<String, Object> map);

    ResultObject<String> revocation(Map<String, Object> paramsWithUserInfo);

    ResultObject selectList();

    /**
     * 逻辑删除
     * @param params
     * @return
     */
    ResultObject deleteStatus(Map<String, Object> params);

    /**
     * 查看自动运营修改回填的Json
     * @param params
     * @return
     */
    ResultObject queryAutoTriJson(Map<String, Object> params);

    /**
     * 查询审批策略列表 --自动运营
     * @param params
     * @return
     */
    ResultObject queryAutoTrisCheck(Map<String, Object> params);

    /**
     * 审批状态
     * @param params
     * @return
     */
    ResultObject approvalStatus(Map<String, Object> params);

    /**
     * 创建人群
     * @param map
     * @return
     */
    ResultObject createAutoUserGroup(Map<String, Object> map);

    /**
     * 人群列表查询人群规模
     * @param groupId
     * @return
     */
    ResultObject userGroupInfo(String groupId);

}
